package edu.hwadee.BEIS.entity;
// default package

import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

import com.alibaba.fastjson.annotation.JSONField;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * ProjectDeclare entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "project_declare", catalog = "beis")
public class ProjectDeclare implements java.io.Serializable {

	// Fields

	private Integer projectDeclareId;
	private SchoolBasicInfor schoolBasic;
	private String projectDeclareType;
	private String projectDeclareTemplate;
	private String projectName;
	private String projectManager;
	private String projectDescription;
	private String projectFile;
	private Short countyAuditStatus;
	private Short cityAuditStatus;
	
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date modifyTime;

	// Constructors

	/** default constructor */
	public ProjectDeclare() {
	}

	/** minimal constructor */
	public ProjectDeclare(SchoolBasicInfor schoolBasic, String projectDeclareType, String projectDeclareTemplate,
			String projectName, String projectManager, String projectDescription, String projectFile,
			Short countyAuditStatus, Short cityAuditStatus, Date modifyTime) {
		this.schoolBasic = schoolBasic;
		this.projectDeclareType = projectDeclareType;
		this.projectDeclareTemplate = projectDeclareTemplate;
		this.projectName = projectName;
		this.projectManager = projectManager;
		this.projectDescription = projectDescription;
		this.projectFile = projectFile;
		this.countyAuditStatus = countyAuditStatus;
		this.cityAuditStatus = cityAuditStatus;
		this.modifyTime = modifyTime;
	}

	// Property accessors
	@GenericGenerator(name = "generator", strategy = "increment")
	@Id
	@GeneratedValue(generator = "generator")

	@Column(name = "project_declare_id", unique = true, nullable = false)

	public Integer getProjectDeclareId() {
		return this.projectDeclareId;
	}

	public void setProjectDeclareId(Integer projectDeclareId) {
		this.projectDeclareId = projectDeclareId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "school_id", nullable = false)

	public SchoolBasicInfor getSchoolBasic() {
		return this.schoolBasic;
	}

	public void setSchoolBasic(SchoolBasicInfor schoolBasic) {
		this.schoolBasic = schoolBasic;
	}

	@Column(name = "project_declare_type", nullable = false, length = 50)

	public String getProjectDeclareType() {
		return this.projectDeclareType;
	}

	public void setProjectDeclareType(String projectDeclareType) {
		this.projectDeclareType = projectDeclareType;
	}

	@Column(name = "project_declare_template", nullable = false, length = 100)

	public String getProjectDeclareTemplate() {
		return this.projectDeclareTemplate;
	}

	public void setProjectDeclareTemplate(String projectDeclareTemplate) {
		this.projectDeclareTemplate = projectDeclareTemplate;
	}

	@Column(name = "project_name", nullable = false, length = 50)

	public String getProjectName() {
		return this.projectName;
	}

	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}

	@Column(name = "project_manager", nullable = false, length = 50)

	public String getProjectManager() {
		return this.projectManager;
	}

	public void setProjectManager(String projectManager) {
		this.projectManager = projectManager;
	}

	@Column(name = "project_description", nullable = false, length = 200)

	public String getProjectDescription() {
		return this.projectDescription;
	}

	public void setProjectDescription(String projectDescription) {
		this.projectDescription = projectDescription;
	}

	@Column(name = "project_file", nullable = false, length = 100)

	public String getProjectFile() {
		return this.projectFile;
	}

	public void setProjectFile(String projectFile) {
		this.projectFile = projectFile;
	}

	@Column(name = "county_auditstatus", nullable = false)

	public Short getCountyAuditStatus() {
		return this.countyAuditStatus;
	}

	public void setCountyAuditStatus(Short countyAuditStatus) {
		this.countyAuditStatus = countyAuditStatus;
	}

	@Column(name = "city_auditstatus", nullable = false)

	public Short getCityAuditStatus() {
		return this.cityAuditStatus;
	}

	public void setCityAuditStatus(Short cityAuditStatus) {
		this.cityAuditStatus = cityAuditStatus;
	}

	@Column(name = "modify_time", nullable = false, length = 19)

	public Date getModifyTime() {
		return this.modifyTime;
	}

	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}


}